<?php

/**
 * Менеджер редактирования контента модуля статических страниц.
 *
 */
class Static_Backend_Contents extends Kernel_Manager_List
{
    
    /**
     * Наименование действия по умолчанию (для данного списка).
     *
     * @var string
     */
    protected $_default = 'edit';
    
    
    
    public function __construct($params = array()) 
    {
        $this->_exclude_actions = (array)Kernel_Config::get('Static', 'exclude_actions');
        
        parent::__construct($params);
    }
    
    /**
     * Возвращает параметры, передаваемых в конструктор компонента, реализующего
     * указанное действие.
     *
     * @param   string  $name
     * @return  array
     */
    protected function _getActionParams($name) 
    {
        // при условии отсутствия записей и действия отличного от добавления
        if (!count(Static_Backend_Utils::getAll()) && 'add' != $name) {
            // а также если добавление НЕ запрещено
            if (!in_array('add', $this->_exclude_actions)) {
                // перенаправляем агента на добавление
                $this->_location(array('action' => 'add'));
            }
        // если действие "Редактировать" и Id не указан явно, перенаправляем агента
        } elseif ('edit' == $name && !Application::getRequest()->get('id')) {
            $this->_location(array('id' => Static_Backend_Utils::active()));
        }
        
        return parent::_getActionParams($name);
    }
    
}
